// src/middlewares/authMiddleware.js

import jwt from 'jsonwebtoken';
import _ from 'lodash'

export const authenticateToken = (req: any, res: any, next: any) => {
    // 从请求头获取 token
    const authHeader = req.headers['authorization'];
    let token = authHeader && authHeader.split(' ')[1]; // Bearer TOKEN
    // console.log('从请求头获取:', token)

    if (token == null) {
        return res.sendStatus(401); // 没有 token，返回 401 未授权
    } else {
        jwt.verify(token, 'cgc', (err: any, user: any) => {
            if (err) {
                return res.status(500).json({
                    status: 'false',
                    message: 'token 已过时，请重新登录！'
                }); // 无效 token，返回 403 禁止访问
            }

            // 将用户信息添加到请求对象
            req.user = user;
            next(); // 继续处理请求
        });
    }
};
